package cn.unknowpupil.init.domain.system;

import cn.unknowpupil.init.configure.mybatisplus.base.ParentEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;


/**
 * Created at 2020-10-16 by  w10g <br>
 * Initialize LogRecord  ... <br>
 *  操作日志记录
 * @author unknowpupil
 * @since 0.0.1
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_log_record")
@ApiModel(value = "LogRecord 域", description = "操作日志记录")
public class SysLogRecord extends ParentEntity<SysLogRecord> {

private static final long serialVersionUID=1L;
    /**
     * 模块标题
     */
    @ApiModelProperty(value = "模块标题")
    @TableField(value ="title")
    private String title;
    /**
     * 业务类型（0其它 1新增 2修改 3删除）
     */
    @ApiModelProperty(value = "业务类型（0其它 1新增 2修改 3删除）")
    @TableField(value ="business_type")
    private Integer businessType;
    /**
     * 方法名称
     */
    @ApiModelProperty(value = "方法名称")
    @TableField(value ="method")
    private String method;
    /**
     * 请求方式
     */
    @ApiModelProperty(value = "请求方式")
    @TableField(value ="request_method")
    private String requestMethod;
    /**
     * 操作类别（0其它 1后台用户 2手机端用户）
     */
    @ApiModelProperty(value = "操作类别（0其它 1后台用户 2手机端用户）")
    @TableField(value ="operator_type")
    private Integer operatorType;
    /**
     * 操作人员
     */
    @ApiModelProperty(value = "操作人员")
    @TableField(value ="oper_name")
    private String operName;
    /**
     * 部门名称
     */
    @ApiModelProperty(value = "部门名称")
    @TableField(value ="dept_name")
    private String deptName;
    /**
     * 请求URL
     */
    @ApiModelProperty(value = "请求URL")
    @TableField(value ="oper_url")
    private String operUrl;
    /**
     * 主机地址
     */
    @ApiModelProperty(value = "主机地址")
    @TableField(value ="oper_ip")
    private String operIp;
    /**
     * 操作地点
     */
    @ApiModelProperty(value = "操作地点")
    @TableField(value ="oper_location")
    private String operLocation;
    /**
     * 请求参数
     */
    @ApiModelProperty(value = "请求参数")
    @TableField(value ="oper_param")
    private String operParam;
    /**
     * 返回参数
     */
    @ApiModelProperty(value = "返回参数")
    @TableField(value ="json_result")
    private String jsonResult;
    /**
     * 错误消息
     */
    @ApiModelProperty(value = "错误消息")
    @TableField(value ="error_msg")
    private String errorMsg;
    /**
     * 操作时间
     */
    @ApiModelProperty(value = "操作时间")
    @TableField(value ="oper_time")
    private Date operTime;
    /**
     * 浏览器
     */
    @ApiModelProperty(value = "浏览器")
    @TableField(value ="browser")
    private String browser;
    /**
     * 系统
     */
    @ApiModelProperty(value = "系统")
    @TableField(value ="os")
    private String os;



    /**
     * 操作时间
     */
    @ApiModelProperty(value = "操作耗时")
    @TableField(value ="time_consuming")
    private long timeConsuming;

    /** 开始时间 */
    @TableField(exist = false)
    @JsonIgnore
    private String beginTime;

    /** 结束时间 */
    @TableField(exist = false)
    @JsonIgnore
    private String endTime;

    /** 业务类型数组 */
    @TableField(exist = false)
    @JsonIgnore
    private Integer[] businessTypes;
}